package com.greenline.push.core.pushcenter;

import java.util.List;

import com.greenline.push.dal.pushcenter.dataobject.DomainDO;
import com.greenline.push.dal.query.DomainQuery;

/**
 * DomainManager
 * 
 * @author zhangdp
 * 
 */
public interface DomainManager {

    /**
     * 新增
     * 
     * @param domainDO
     * @return 新增数据的ID
     */
    Long insert(DomainDO domainDO);

    /**
     * 根据ID获取domainDO
     * 
     * @param id
     * @return domainDO
     */
    DomainDO getDomainById(Long id);

    /**
     * 跟新
     * 
     * @param domainDO
     * @return -1 表示更新失败；>0 表示更新成功
     */
    boolean update(DomainDO domainDO);

    /**
     * 分页查询
     * 
     * @param query
     * @return
     */
    DomainQuery listByQuery(DomainQuery query);

    /**
     * 删除
     * 
     * @param id
     * @return -1 表示更新失败；>0 表示更新成功
     */
    boolean delete(Long id);

    /**
     * get all domain
     * 
     * @return
     */
    List<DomainDO> listAll();

    DomainDO getByCode(String code);

}
